<?php

	//Visa lista och skit.
	class FileUploadView {

		private $uploadButton = "uploadButton";
		private $fileName = "file";
		private $name = "Title";
		private static $FileID = "FileID";		
		
		// konstanter för felmeddelande
		CONST FOTO_INVALID = 1;
		CONST NO_TITLE = 2;
		CONST FOTO_UPLOAD = 3;
		
		// formulär för att ladda upp en bild
		public function UploadForm() {
			
			return "
				<h2 id='fileuploadh2'> Ladda Upp Bild!</h2>
				<form id='fileupload' action='index.php?Upload' method='post'
				enctype='multipart/form-data'>
				
					<div class='logoutinput'>
					<label for='Title'>Titel: </label> 
					<input type='text' name='$this->name' value='' />
					</div>
					<div class='logoutinput'>
					<label for='file'>Bilden: </label> 
					<input type='hidden' name='MAX_FILE_SIZE' value='512000000' />
					<input type='file' name='$this->fileName' id='file' /> 
					</div>
					<input type='Submit' name='$this->uploadButton' class='button1' value='Ladda upp' />

					
				</form>";
		}
		// Hämtar filnamnet när man trycker på en bild
		public static function getFileName(){
			return $_GET[self::$FileID];
		}
		// Hämtar filtitel
		public function GetFileTitle(){
			
			if(isset($_POST[$this->name]) && !empty($_POST[$this->name])){
				return $_POST[$this->name];
			
			}
			return false;
		}
		// Hämtar filnamnet när man laddar upp
		public function GetPicName(){
			return $_FILES["file"]["name"];
			
		}
		// Skapar Content hur en bild ska se ut
		public static function onePic($title, $uploadName, $file)
		{
			return "
			<h2 id='titlepic'> $title </h2>
			<p id='uploadname'> Uppladdad av: $uploadName </p>
			<img id='one' src='files/$file'> 
			";
		}	
		//Skriver ut lista med filerna.
		public function FileList() {
			
			$div = "";
			$path = "files/";
			$dir = opendir($path); // directory
			$images = array(); // alla bilder
			
			// Så länge man hämtar en fil från /files
			while (($file = readdir($dir)) !== false) {
				if (($file != ".") && ($file != "error") && ($file != "..") && ($file != "Thumbs.db")) { // och inte innehåller dessa namn
					
					// Så ska man stoppa filtiden "när de skapades eller ändrades" och filen i en array
					$images[] = array(filemtime($path.$file),$file);
					
				}
			}
			// sorterar filen efter tid, senast ändrad/uppladdad först
			rsort($images);
			
			// för varje bild i bildarrayen
			foreach($images as $image)
			{
				// Så är filnamnet i platsnr2 i arrayen och fixar pathen
				$file = $image[1]; 
				$this->files = NavigationView::getProductLink($file); // fixar länk till filen i a-tagg, och fixar img-src
				$div .= "
				<a class='imageLink' href='$this->files'>
				<img src='files/$file' class='imageBlock'>
				</a>";
			}
			
			closedir($dir); // stänger directory
			
			// retunerar bilderna
			return "<div id='filebrows'>" . $div . "</div>";
		}
		// Fixar error-messages beroende på vad som skickas in
		public function ErrorMessage($error) {
			$ret = "";
			switch($error)
			{
				case self::FOTO_INVALID:
					$ret .= "Bilden är i fel format eller finns redan";
					break;
				case self::NO_TITLE:
					$ret .= "Du måste ange en titel";
					break;
				case self::FOTO_UPLOAD:
					$ret .= "Uppladdad!";
					break;
			}
			// retunerar de i en div-tagg
			return "
				<div id='wrongFileDiv'>
					<p id='badstatus'> $ret </p>
				</div>";
		}
		// om man skriver in i url:en en bild som inte finns, så ska dnena bild dyka upp
		public static function NoPicture(){
			$imagePath = "files/error/image_not_found.jpg";
			$Error = "
				<img id='errorImage' src='$imagePath'>
					<a id='errorBack' href='index.php'> Gå Tillbaka </a>
			
			";
			return $Error;
			
		}
		// Fil
		public function Files() {
			return $_FILES;
		}

		// Kollar om man har tryckt på upload knappen
		public function UploadButton() {
			if (isset($_POST[$this->uploadButton])) {
				return true;
			}		
			return false;
		}
	}
